;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Copyright 2021 fanguangping
; 
; Licensed under the Apache License, Version 2.0 (the "License");
; you may not use this file except in compliance with the License.
; You may obtain a copy of the License at
; 
;     http://www.apache.org/licenses/LICENSE-2.0
; 
; Unless required by applicable law or agreed to in writing, software
; distributed under the License is distributed on an "AS IS" BASIS,
; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
; See the License for the specific language governing permissions and
; limitations under the License.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

#lang racket

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Global messages definition
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

(provide (all-defined-out))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Object class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +M-Object-equals+                        1001)
(define +M-Object-hash-code+                     1002)
(define +M-Object-to-string+                     1003)
(define +M-Object-type+                          1004)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Queue class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +M-Queue-is-empty+                       2001)
(define +M-Queue-enqueue+                        2002)
(define +M-Queue-insert-head+                    2003)
(define +M-Queue-dequeue+                        2004)
(define +M-Queue-append+                         2005)
(define +M-Queue-elements+                       2006)
(define +G-Queue-head+                           2007)
(define +G-Queue-tail+                           2008)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Stack class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +M-Stack-is-empty+                       3001)
(define +M-Stack-push+                           3002)
(define +M-Stack-push-all+                       3003)
(define +M-Stack-pop+                            3004)
(define +M-Stack-peek+                           3005)
(define +M-Stack-elements+                       3006)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Hash class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +M-Hash-put+                             4001)
(define +M-Hash-get+                             4002)
(define +M-Hash-contains-key+                    4003)
(define +M-Hash-merge+                           4004)
(define +M-Hash-elements+                        4005)
(define +M-Hash-clear+                           4006)
(define +M-Hash-copy+                            4007)
(define +M-Hash-table+                           4008)
(define +M-HashMap-equal+                        4009)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Tree class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +G-TreeNode-key+                         5001)
(define +G-TreeNode-value+                       5002)
(define +G-TreeNode-parent+                      5003)
(define +G-TreeNode-left-child+                  5004)
(define +G-TreeNode-right-sibling+               5005)
(define +G-TreeNode-level+                       5006)
(define +S-TreeNode-key+                         5007)
(define +S-TreeNode-value+                       5008)
(define +S-TreeNode-parent+                      5009)
(define +S-TreeNode-left-child+                  5010)
(define +S-TreeNode-right-sibling+               5011)
(define +S-TreeNode-level+                       5012)
(define +G-Tree-root+                            5013)
(define +S-Tree-root+                            5014)
(define +M-Tree-travel+                          5015)
(define +M-Tree-add-chain+                       5016)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Graph class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +M-Graph-add-vertex+                     6001)
(define +M-Graph-add-edge+                       6002)
(define +M-Graph-find-vertex+                    6003)
(define +M-Graph-vertices+                       6004)
(define +M-Graph-topological-sort+               6005)
(define +M-Graph-dag+                            6006)
(define +M-Graph-path+                           6007)
(define +M-Graph-update-vertex+                  6008)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Sorted class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +G-SortedNode-key+                       7001)
(define +G-SortedNode-value+                     7002)
(define +S-SortedNode-key+                       7003)
(define +S-SortedNode-value+                     7004)
(define +G-Sorted-avl-tree+                      7005)
(define +M-Sorted-init+                          7006)
(define +M-Sorted-empty+                         7007)
(define +M-Sorted-add+                           7008)
(define +M-Sorted-remove+                        7009)
(define +M-Sorted-find+                          7010)
(define +M-Sorted-contains+                      7011)
(define +M-Sorted-union+                         7012)
(define +M-Sorted-elements+                      7013)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Tensor class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +M-Tensor-init+                          8001)
(define +M-Tensor-set+                           8002)
(define +M-Tensor-get+                           8003)
(define +M-Tensor-value+                         8004)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Statement class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +M-TransitTable-put+                     9001)
(define +M-TransitTable-get+                     9002)
(define +M-TransitTable-transit+                 9003)
(define +M-TransitTable-test-match+              9004)
(define +M-TransitTable-repeat-transition+       9005)
(define +M-TransitTable-step-transition+         9006)
(define +M-Statement-test-match+                 9007)
(define +M-Statement-extract+                    9008)
(define +M-Statement-to-dfa+                     9009)
(define +M-Statement-times+                      9010)
(define +M-Statement-meta-context+               9011)
(define +G-Statement-symbol+                     9012)
(define +G-Statement-type+                       9013)
(define +G-Statement-children+                   9014)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Mapping class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +G-Mapping-type+                         10001)
(define +G-Mapping-source-statement+             10002)
(define +G-Mapping-target-statement+             10003)
(define +G-Mapping-to-dfa-function+              10004)
(define +M-Mapping-source-starter+               10005)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Trie class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define +G-TrieNode-key+                         11001)
(define +G-TrieNode-value+                       11002)
(define +G-TrieNode-suffix+                      11003)
(define +G-TrieNode-next+                        11004)
(define +S-TrieNode-key+                         11005)
(define +S-TrieNode-value+                       11006)
(define +S-TrieNode-suffix+                      11007)
(define +S-TrieNode-next+                        11008)
(define +G-TrieLevel-container+                  11009)
(define +G-TrieLevel-level+                      11010)
(define +G-TrieLevel-find-function+              11011)
(define +G-TrieLevel-add-function+               11012)
(define +G-TrieLevel-remove-function+            11013)
(define +S-TrieLevel-container+                  11014)
(define +S-TrieLevel-level+                      11015)
(define +M-Trie-add+                             11016)
(define +M-Trie-find+                            11017)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Messages for Component class
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;



